package com.game.modular.gameCore.npc.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
 * (CoreNpcRanks)表实体类
 *
 * @author cxy
 * @since 2024-07-31 10:40:42
 */
@ApiModel("$tableInfo.comment")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
@SuppressWarnings("serial")
public class CoreNpcRanks extends Model<CoreNpcRanks> {// swagger2,mybatis-plus
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 生成实体字段
    @TableId(type = IdType.AUTO)
    @ApiModelProperty("npc队伍id")
    private Long id;
    
    @ApiModelProperty("npc队伍名字")
    private String name;
    
    @ApiModelProperty("ncp武将1")
    private Long npcHeroId1;
    
    @ApiModelProperty("npc武将1 带兵数量")
    private Long armyCount1;
    
    @ApiModelProperty("ncp武将2")
    private Long npcHeroId2;
    
    @ApiModelProperty("ncp武将2 带兵数量")
    private Long armyCount2;
    
    @ApiModelProperty("ncp武将3")
    private Long npcHeroId3;
    
    @ApiModelProperty("ncp武将3 带兵数量")
    private Long armyCount3;
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 序列化版本号
    @TableField(exist = false)
    private static final long serialVersionUID = 738657134583523589L;
    /////////////////////////////////////////////////////////////////////////////////////////////////////////// 获取主键值
    @Override
    public Serializable pkVal() {
        return this.id;
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 非数据库字段
    /////////////////////////////////////////////////////////////////////////////////////////////////////////    领域业务
    @ApiModelProperty("npc队伍信息")
    @TableField(exist = false)
    private Map<Long,Long> npcHeroMap;

    public CoreNpcRanks init(){
        npcHeroMap = new LinkedHashMap<>();
        npcHeroMap.put(npcHeroId1, armyCount1);
        npcHeroMap.put(npcHeroId2, armyCount2);
        npcHeroMap.put(npcHeroId3, armyCount3);
        return this;
    }
}

